// 先导入 node.js 的核心模块
const path = require('path');
// 再导入第三方模块
const express = require('express');
const session = require('express-session');
const morgan = require('morgan');
const nunjucks = require('nunjucks');
// 最后导入自定义模块
const goodRouter = require( './routes/good' );
const userRouter = require( './routes/user' );
// 定义端口
const port = 8080 ;
// 创建一个express应用(application)
const app = express();

// 显示指定模板文件所在的目录
const template = 'views' ;
// 设置模板引擎
app.set('views', path.join(__dirname, template));
app.set('view engine', 'njk');

nunjucks.configure( template , { autoescape: true , express: app ,noCache:false} );

// 对会话进行设置
const options = {
  name: 'KAIFAMIAO',
  secret: 'kaifamiao',
  resave: false,
  saveUninitialized: false,
  cookie: { secure: false , path: '/' }
}
// 启用会话支持
app.use( session(options) );

// 启用日志支持
app.use( morgan('dev') );
// 处理表单中的 application/json 数据
app.use( express.json() );
// 处理表单中的 application/x-www-form-urlencoded 数据
app.use( express.urlencoded({ extended: false }) );
// 处理静态资源
app.use( express.static(path.join(__dirname, 'public')) );

// 挂载路由模块
app.use( goodRouter );
app.use( userRouter );
// 监听端口
app.listen( port );
